Тестування у Spring Boot
📌 Написання unit-тестів
Використаємо JUnit та Mockito для тестування сервісного шару.
import static org.mockito.Mockito.*;
import static org.junit.jupiter.api.Assertions.*;
import org.junit.jupiter.api.Test;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import java.util.List;
import java.util.Arrays;
public class BookServiceTest {
@Mock
private BookRepository bookRepository;
@InjectMocks
private BookService bookService;
public BookServiceTest() {
MockitoAnnotations.openMocks(this);
}
@Test
public void testGetAllBooks() {
when(bookRepository.findAll()).thenReturn(Arrays.asList(new Book("Test Book", "Author", 2022)));
List books = bookService.getAllBooks();
assertEquals(1, books.size());
assertEquals("Test Book", books.get(0).getTitle());
}
}
🛠 Тестування контролера
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest;
import org.springframework.test.web.servlet.MockMvc;
@WebMvcTest(BookController.class)
public class BookControllerTest {
@Autowired
private MockMvc mockMvc;
@Test
public void testGetAllBooks() throws Exception {
mockMvc.perform(get("/books"))
.andExpect(status().isOk());
}
}
Назад Далі